package br.com.jvet.persistencia;

import java.util.List;
import java.util.Map;

import javax.ejb.Stateless;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Root;

import br.com.jvet.entidade.Pagamento;

@Stateless
public class PagamentoDAO extends AbstractDAO<Pagamento, Integer> {

	public PagamentoDAO() {
		super(Pagamento.class);
	}


	public List<Pagamento> listaPorParametro(Map<String, Object> parameters) {

		CriteriaBuilder cb = super.getEntityManager().getCriteriaBuilder();
		CriteriaQuery<Pagamento> cq = cb.createQuery(Pagamento.class);

		Root<Pagamento> root = cq.from(Pagamento.class);
		cq.select(root);

		if (parameters.containsKey("statusPagamento")) {
			Path<String> name = root.get("statusPagamento");
			cq.where(cb.and(cb.equal(name, parameters.get("statusPagamento"))));
		}

		if (parameters.containsKey("tipoPagamento")) {
			Path<String> name = root.get("tipoPagamento");
			cq.where(cb.and(cb.equal(name, parameters.get("tipoPagamento"))));
		}

		TypedQuery<Pagamento> query = super.getEntityManager().createQuery(cq);

		return query.getResultList();
	}

}
